home *** CD-ROM | disk | FTP | other *** search
/ IRIX 6.2 / IRIX 6.2 CD2.iso / dist / print.idb / usr / lib / preset.z / preset
Text File  |  1996-06-10  |  3KB  |  110 lines

  1. #! /bin/sh
  2. # Delete all memories of printers and return the lp system to a pristine state
  3. # Copyright 1987 Silicon Graphics, Inc. - All Rights Reserved
  4.  
  5. SPOOLER_BASEDIR=/var/spool/lp
  6.  
  7. #
  8. # Checks that we are the super-user and verifies
  9. # that the System V spooling system is present
  10. #
  11. CheckPermSpooler()
  12. {
  13.     idstr=`id`
  14.     cid=`expr "$idstr" : '^[     ]*uid=.*(\(.*\))[     ]*gid='`
  15.     if [ "$cid" != "root" ]; then
  16.     echo "You must be logged in as root to use this program."
  17.     exit 1;
  18.     fi
  19.     if [ ! -r $SPOOLER_BASEDIR ]; then
  20.     echo "The System V spooling system is not installed on this system."
  21.     exit 1
  22.     fi
  23. }
  24.  
  25.  
  26. #########################################################################
  27. #
  28. # Main program
  29. #
  30.  
  31. #
  32. # Ensure that we are root and that the main System V
  33. # spooling system directory is present
  34. #
  35. CheckPermSpooler
  36.  
  37. echo " "
  38. echo "WARNING: Running this script will remove ALL installed printers,"
  39. echo "         delete all pending print jobs, and remove all saved settings." 
  40. echo "         This will affect all users of this system, as well as"
  41. echo "         all remote users of printers attached to this system."
  42. echo "         You should use this tool ONLY if your spooler is"
  43. echo "         irretrievably damaged, and all other measures have failed."
  44. echo '\nAre you sure you wish to continue?  (y/n)[n] \c'
  45. read yn
  46. if [ \( "$yn" != "y" \) -a \( "$yn" != "Y" \) ]; then
  47.     exit 1
  48. fi
  49. echo " "
  50.  
  51. # OK, now stop the scheduler
  52. #
  53. echo "Stopping scheduler..."
  54. /etc/init.d/lp stop
  55.  
  56. echo "Resetting spooler special files..."
  57. cat /dev/null > $SPOOLER_BASEDIR/pstatus
  58. cat /dev/null > $SPOOLER_BASEDIR/qstatus
  59. cat /dev/null > $SPOOLER_BASEDIR/outputq
  60.  
  61. # remove any default printer setting
  62. echo "Removing default printer setting..."
  63. cat /dev/null > $SPOOLER_BASEDIR/default
  64.  
  65. echo "Removing all installed printers and associated files..."
  66. rm -rf $SPOOLER_BASEDIR/member/*
  67. rm -rf $SPOOLER_BASEDIR/devices/*
  68. rm -rf $SPOOLER_BASEDIR/request/*
  69. rm -rf $SPOOLER_BASEDIR/interface/*
  70. rm -rf $SPOOLER_BASEDIR/class/*
  71. rm -rf $SPOOLER_BASEDIR/activeicons/*
  72. rm -rf $SPOOLER_BASEDIR/settings/*
  73.  
  74. if [ -d $SPOOLER_BASEDIR/psparams ]; then
  75.  
  76.     # psparams dir only there if Impressario installed.
  77.  
  78.     rm -rf $SPOOLER_BASEDIR/psparams/*
  79.     chown lp.sys $SPOOLER_BASEDIR/psparams
  80.     chmod 755 $SPOOLER_BASEDIR/psparams
  81. fi
  82.  
  83. echo "Setting ownership and permissions on spooler directories..."
  84. chown lp.sys    \
  85.         $SPOOLER_BASEDIR/activeicons \
  86.         $SPOOLER_BASEDIR/class \
  87.         $SPOOLER_BASEDIR/devices \
  88.         $SPOOLER_BASEDIR/gui_interface \
  89.             $SPOOLER_BASEDIR/interface \
  90.         $SPOOLER_BASEDIR/member \
  91.         $SPOOLER_BASEDIR/pod \
  92.         $SPOOLER_BASEDIR/request \
  93.         $SPOOLER_BASEDIR/settings
  94. chmod 755       \
  95.         $SPOOLER_BASEDIR/activeicons \
  96.         $SPOOLER_BASEDIR/class \
  97.         $SPOOLER_BASEDIR/devices \
  98.         $SPOOLER_BASEDIR/gui_interface \
  99.             $SPOOLER_BASEDIR/interface \
  100.         $SPOOLER_BASEDIR/member \
  101.         $SPOOLER_BASEDIR/pod \
  102.         $SPOOLER_BASEDIR/request \
  103.         $SPOOLER_BASEDIR/settings
  104.  
  105. echo "Restarting scheduler..."
  106. /etc/init.d/lp start
  107. echo " "
  108. echo "The spooler system has been purged and reset."
  109. echo "Please re-add your printers now."
  110.